package com.witmore.neutron.ai.web.wechat.service;

import com.witmore.neutron.ai.web.wechat.dto.CreateQrCodeResponse;
import com.witmore.neutron.ai.web.wechat.dto.CustomMenuDTO;
import com.witmore.neutron.ai.web.wechat.dto.CustomMenuResponse;

/**
 * 微信服务接口
 * Author: 豆子高
 * Date: 2025/12/19
 */
public interface WechatService {

    /**
     * 获取微信AccessToken
     *
     * @return AccessToken
     */
    String getAccessToken();

    /**
     * 强制刷新微信AccessToken（清除缓存并重新获取）
     *
     * @return 新的AccessToken
     */
    String refreshAccessToken();

    /**
     * 创建带参数的二维码
     *
     * @param sceneStr 场景值
     * @param expireSeconds 过期时间（秒）
     * @return 二维码信息
     */
    CreateQrCodeResponse createQrCode(String sceneStr, Integer expireSeconds);

    /**
     * 根据ticket获取二维码图片URL
     *
     * @param ticket 二维码ticket
     * @return 二维码图片URL
     */
    String getQrCodeImageUrl(String ticket);

    /**
     * 创建自定义菜单
     *
     * @param menuDTO 菜单配置
     * @return 创建结果
     */
    CustomMenuResponse createCustomMenu(CustomMenuDTO menuDTO);

    /**
     * 删除自定义菜单
     *
     * @return 删除结果
     */
    CustomMenuResponse deleteCustomMenu();

    /**
     * 获取自定义菜单配置
     *
     * @return 菜单配置
     */
    CustomMenuDTO getCustomMenu();

    /**
     * 创建默认的自定义菜单（包含AI服务、关于我们等）
     *
     * @return 创建结果
     */
    CustomMenuResponse createDefaultCustomMenu();
}
